package si.banst.tecajnice.web.mbean;

import java.util.logging.Logger;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import si.banst.tecajnice.ejb.TecajniceBeanRemote;
import si.banst.tecajnice.ejb.napake.NapakaPriPovprasevanju;
import si.banst.tecajnice.entitete.StatusAktivnosti;
import si.banst.tecajnice.entitete.Tecaj;
import si.banst.tecajnice.web.TecajDataModel;

@Named
public class VerifikacijaTecajevMBean {
	private static final Logger logger = Logger
			.getLogger(VerifikacijaTecajevMBean.class.getName());

	@EJB(lookup="corbaname:iiop:tecajnice.banst.si:2811#TecajniceBean")
	private TecajniceBeanRemote tecajniceBean;

	private Tecaj izbranTecaj;

	public VerifikacijaTecajevMBean() {
		super();
	}

	public TecajDataModel getNeaktivniTecaji() {
		TecajDataModel neaktivniTecaji = null;
		try {
			neaktivniTecaji = new TecajDataModel(
					tecajniceBean.vrniVseNeaktivneTecaje());

			if (neaktivniTecaji == null || !neaktivniTecaji.isRowAvailable())
				throw new NapakaPriPovprasevanju("Seznam tecajev je prazen.");

		} catch (NapakaPriPovprasevanju e) {
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri inicializaciji", e.getMessage()));
		}
		return neaktivniTecaji;
	}

	public void verificiraj() {
		logger.info("verificiram");
		try {
			izbranTecaj.setStatusAktivnosti(StatusAktivnosti.AKTIVEN);
			izbranTecaj.setReferent(FacesContext.getCurrentInstance()
					.getExternalContext().getRemoteUser());
			tecajniceBean.posodobiTecaj(izbranTecaj);

		} catch (Exception e) {
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri posodobitvi", e.getMessage()));
		}
		FacesContext.getCurrentInstance().addMessage(
				null,
				new FacesMessage(FacesMessage.SEVERITY_INFO,
						"Verifikacija uspešna.", ""));
	}

	public void setIzbranTecaj(Tecaj izbranTecaj) {
		this.izbranTecaj = izbranTecaj;
	}

	public Tecaj getIzbranTecaj() {
		return izbranTecaj;
	}

}
